package com.api.rc.form;

import io.swagger.annotations.ApiModel;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 游戏结果表单
 *
 * @author RenQiang
 * @date 2021/7/18
 */
@Data
@ApiModel("游戏结果表单")
public class GameResultForm {
    /**
     * 房间ID
     */
    @NotNull
    private Long roomId;
    /**
     * 比赛结果
     */
    @NotEmpty
    @Valid
    private List<MatchResult> matchResults;

    @Data
    @ApiModel("比赛")
    public static class MatchResult {
        /**
         * 比赛场次
         */
        @NotNull
        @Min(value = 1)
        private Integer matchNo;
        /**
         * 比赛结果截图
         */
        @NotEmpty
        private String standingSnapshot;
        /**
         * 队伍成绩
         */
        @NotEmpty
        @Valid
        private List<Standing> teamStandings;
    }

    @Data
    @ApiModel("队伍成绩")
    public static class Standing {
        /**
         * 队伍编号
         */
        @NotNull
        @Min(value = 1)
        private Integer teamNo;
        /**
         * 淘汰数（PUBG）
         */
        private Integer kills;
        /**
         * 淘汰分（PUBG）
         */
        private Integer killPoints;
        /**
         * 排名（PUBG）
         */
        private Integer place;
        /**
         * 排名分（PUBG）
         */
        private Integer placePoints;
        /**
         * 总分
         */
        private Integer totalPoints;
        /**
         * 是否是胜利者（吃鸡）
         */
        private Boolean isWinner;
    }
}
